// 参数一需要传递函数，且返回值是number类型 参数二是number 整个函数签名返回值为string
interface IFnCall {
  <T>(fn: () => T, age: number): T
}
// 函数使用接口
const foo: IFnCall = function (fn, age) {
  return fn()
}

// 调用时传入准确的泛型
// foo<number>(() => {
//   return 1
// }, 1)

// 不传入泛型 自己推断
foo(() => {
  return '1'
}, 1)
